package com.education.ai.dao;

import com.education.ai.entity.TeachingPlan;

import java.util.List;
import java.util.Optional;

/**
 * 教学计划数据访问接口
 */
public interface TeachingPlanDao {
    
    /**
     * 保存教学计划
     */
    TeachingPlan save(TeachingPlan plan);
    
    /**
     * 根据ID查询教学计划
     */
    Optional<TeachingPlan> findById(Long id);
    
    /**
     * 获取所有教学计划
     */
    List<TeachingPlan> findAll();
    
    /**
     * 根据教师ID查询教学计划
     */
    List<TeachingPlan> findByTeacherId(String teacherId);
    
    /**
     * 根据学科查询教学计划
     */
    List<TeachingPlan> findBySubject(String subject);
    
    /**
     * 根据年级查询教学计划
     */
    List<TeachingPlan> findByGrade(String grade);
    
    /**
     * 根据主题查询教学计划
     */
    List<TeachingPlan> findByTopic(String topic);
    
    /**
     * 删除教学计划
     */
    boolean deleteById(Long id);
    
    /**
     * 查询总数
     */
    long count();
} 